package com.taotaojs.util.reflect;

import lombok.Data;

import java.lang.reflect.ParameterizedType;

/**
 * 在代码块中使用setIndex(index)设置获取的泛型坐标
 * @author: TaoTaojs
 * @Date: 2019年11月19日15:56:28
 * @关联类:
 * @参考链接：
 */
@Data
public class GenericityOperationSuper<T> {

	/** 泛型的类型 */
	private Class<T> entityClass;

	private int index = 0;

	public GenericityOperationSuper(){
		baseHibernateEntityDao();
	}

	public GenericityOperationSuper(int i){
		setIndex(i);
		baseHibernateEntityDao();
	}

	@SuppressWarnings("unchecked")
	public void baseHibernateEntityDao() {
		entityClass =(Class<T>) ((ParameterizedType) getClass()
	                                .getGenericSuperclass()).getActualTypeArguments()[index];
	}

}
